package componenti.buffer;

import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Buffer<T> implements Serializable{

	List<T> oggetti;

	public Buffer() {
		oggetti = Collections.synchronizedList( new LinkedList<T>());
	}

	public int numElementi() {
		return oggetti.size();
	}

	public boolean aggiungi(T o) {
		return oggetti.add(o);
	}

	public boolean rimuovi(T o) {
		return oggetti.remove(o);
	}

	public void clear() {
		oggetti.clear();
	}

	public Iterator<T> iterator() {
		return oggetti.iterator();
	}

	public  T getFirst() {
		return oggetti.remove(0);
	}

	public  void addLast(T t) {
		oggetti.add(t);

	}

	public void svuota() {
		oggetti.removeAll(oggetti);
	}

	@Override
	public String toString() {
		return "Buffer [oggetti=" + oggetti + "]";
	}
}
